草庐IT

Android AsyncTask 内存泄漏

全部标签

php - 以下哪一个 PHP 数组结构会使用更少的内存?

以下哪一项会占用更少的内存?$myArray=array();$myArray[1]=array(1,2,3,4,5,6,7,8,9,10);$myArray[2]=array(1,2,3,4,5,6,7,8,9,10);$myArray[3]=array(1,2,3,4,5,6,7,8,9,10);或$myArray=array();$myArray[1]=array(1,2,3);$myArray[2]=array(1,2,3);$myArray[3]=array(1,2,3);$myArray[4]=array(1,2,3);$myArray[5]=array(1,2,3);$m

php - file_get_contents() 使用的内存在未分配给变量时是否被释放?

当我使用file_get_contents并将其作为参数传递给另一个函数时,没有将其分配给变量,是否会在脚本执行完成之前释放该内存?例如:preg_match($pattern,file_get_contents('http://domain.tld/path/to/file.ext'),$matches);file_get_contents使用的内存是否会在脚本完成之前释放? 最佳答案 为保存文件内容而创建的临时字符串将被销毁。无需深入研究来源进行确认,您可以通过以下几种方法测试作为函数参数创建的临时值是否被销毁:方法一:报销毁的

php - javascript 中内存的真实世界示例?

我找到了诸如阶乘计算之类的示例来解释memoization.这些很有帮助,但我正在寻求更深入的了解。我想知道是否有人可以描述这种技术在现实世界中的应用,以及为什么他们使用它而不是递归,或者他们认为使用记忆化可能有助于他们优化的其他任何东西。 最佳答案 内存比缓存更具体一些。考虑使用选择器在DOM中搜索元素,就像使用jQuery一样。比如,$('.some-selector')。在这种情况下,我调用函数$,告诉它为我找到所有具有CSS选择器“.some-selector”的元素。假设文档很大,我需要多次调用$('.some-selec

php - 内存不足总是在同一行

首先,我不是在寻找“检查您的PHP内存限制”或“您需要添加更多内存”或类似内容的答案......我在一台专用机器上,有8GB的​​RAMS;其中512MB是内存限制。我总是在一行中遇到内存不足错误:澄清一下:这部分代码属于Joomla!内容管理系统。functionget($id,$group,$checkTime){$data=false;$path=$this->_getFilePath($id,$group);$this->_setExpire($id,$group);if(file_exists($path)){$data=file_get_contents($path);if

php守护进程可能的内存泄漏

我已经用php编写了一个守护进程,并希望确保它不会泄漏内存,因为它将24/7全天候运行。即使是最简单的形式,守护进程的memory_get_peak_usage也会报告脚本在每个周期消耗更多内存。另一方面,memory_get_usage不会增长。问题是:我应该担心吗?我已经将守护进程剥离到最基本的部分,但这仍在发生。有什么想法吗?#!/usr/bin/php-q最后说明+结论:我最终编写了自己的守护进程包装器,而不是使用pear的system_daemon。不管我如何调整这个库,我都无法阻止它泄漏内存。希望这对其他人有帮助。最后说明+结论2:我的脚本已经投入生产一个多星期了,仍然没有

php - 使用 AJAX 会增加 PHP 的内存使用吗?

我认为这个问题的答案是否定的,但我没有更多的线索来解决我想弄清楚的问题。我最初只有一个脚本,它通过SQLCMD执行一些数据库查询。我现在决定通过AJAX启动此脚本并等待响应。但是我得到一个fatalerror:Fatalerror:Allowedmemorysizeof134217728bytesexhausted(triedtoallocate445bytes)inC:\process_txt.phponline109我在我的脚本中唯一改变的是这个ajax请求,老实说,没有别的,这就是我问这个问题的原因。我使用JQueryAJAX请求,但我认为我没有使用轮询。这是我使用的AJAXGE

PHP内存泄漏和 fork

我试图避免PHP中的内存泄漏。当我创建一个对象并在最后取消设置时,它仍在内存中。未设置的看起来像:$obj=NULL;unset($obj);这仍然无济于事。我的问题是当我fork进程并且对象将在子线程中创建和销毁时会发生什么?这会一样吗?或者有什么其他方法可以释放内存吗?这是导入脚本,它将消耗几千兆内存。 最佳答案 PHP5.3有一个垃圾收集器,可以收集循环引用。可能值得一试:gc_enable();classA{publicfunction__construct(){$this->data=str_repeat("A",1024

php - 在不影响内存限制的情况下导入巨大的 JSON 编码数组

我有一个包含两个JSON数组的文件;一个保存具有4个值的列名,另一个保存包含10,000多个记录值的数组。我正在使用Symfony和Propel;在使用json_decode时,它​​会抛出允许的内存大小耗尽。在我的php.ini中,我将最大大小指定为500MB,但文件执行了10秒并抛出了错误。数据文件包含{"columns_map":["Name","Age","Address","State"],"rows_map":{"1":["value1","value2","value3","value4"],"4":["value1","value2","value3","value4"

php - 这个 PHP 脚本会泄漏内存吗?

我有一个在后台运行一段时间的PHP脚本(通常是几分钟,但也可能长达一个小时左右)。它包含一个循环,我需要在其中创建一个对象。我目前每次都使用相同的名称:while(!$job_finished){$x=newMyClass();$x->doStuff();$x->doMoreStuff();unset($x);//morecodehere}由于我用相同的名称重复创建$x,垃圾回收会正确清理内存吗?或者我应该在$x上使用一个数组,例如$x[$i]=newMyClass(); 最佳答案 其实我不需要用数组。unset()命令会破坏对象,

PHP cURL,使用 CURLOPT_RETURNTRANSFER 时内存泄漏

下面的代码在一个循环中。每个循环将$URI更改为新地址。我的问题是每次通过都会占用越来越多的内存。$ch=curl_init();curl_setopt($ch,CURLOPT_URL,$URI);curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);curl_setopt($ch,CURLOPT_HEADER,0);$res=curl_exec($ch);curl_close($ch);我终于发现,如果我注释掉CURLOPT_RETURNTRANSFER行,泄漏就会停止。我使用“CURLOPT_RETURNTRANSFER,true”,这样我就可以